/*
 * Copyright (c) 2020 the original author or authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
import axios from 'axios';

const subject_endpoints = {
    list(url, api_key){
        console.log(url, api_key)
        return new Promise( async (resolve, reject) => {
            try {
                const response = await axios.get(url, { 
                    headers: {
                        'Content-Type': 'application/json',
                        "x-api-key": api_key 
                    }
                })

                resolve(response)
            } catch (error) {
                reject(error)
            }
        })
    },

    add(subject, url, api_key){
        let data = { subject };
        return new Promise( async (resolve, reject) => {
            try {
                const response = await axios.post( url, JSON.stringify(data), {
                    headers: {
                        'Content-Type': 'application/json',
                        "x-api-key": api_key
                    },
                })

                resolve(response)
            } catch (error) {
                reject(error)
            }
        })
    },

    rename(subject, url, api_key){
        let data = { subject };
        return new Promise( async (resolve, reject) => {
            try {
                const response = await axios.put( url, JSON.stringify(data), {
                    headers: {
                        'Content-Type': 'application/json',
                        "x-api-key": api_key
                    },
                })

                resolve(response)
            } catch (error) {
                reject(error)
            }
        })
    },

    deleteSubject(url, api_key){
        return new Promise( async (resolve, reject) => {
            try {
                const response = await axios.delete(url, { 
                    headers: {
                        'Content-Type': 'application/json',
                        "x-api-key": api_key
                    }
                }) 

                resolve(response)
            } catch (error) {
                reject(error)
            }
        })
    }
}

export { subject_endpoints }